<?php
class ModelToolImage extends Model {
	public function resize($filename, $width, $height) {
		if (! file_exists ( DIR_IMAGE . $filename ) || ! is_file ( DIR_IMAGE . $filename )) {
			return;
		}
		
		$info = pathinfo ( $filename );
		$extension = $info ['extension'];
		
		$old_image = $filename;
		$new_image = 'cache/' . utf8_substr ( $filename, 0, utf8_strrpos ( $filename, '.' ) ) . '-' . $width . 'x' . $height . '.' . $extension;
		
		if (! file_exists ( DIR_IMAGE . $new_image ) || (filemtime ( DIR_IMAGE . $old_image ) > filemtime ( DIR_IMAGE . $new_image ))) {
			$path = '';
			
			$directories = explode ( '/', dirname ( str_replace ( '../', '', $new_image ) ) );
			
			foreach ( $directories as $directory ) {
				$path = $path . '/' . $directory;
				
				if (! file_exists ( DIR_IMAGE . $path )) {
					@mkdir ( DIR_IMAGE . $path, 0777 );
				}
			}
			
			$image = new Image ( DIR_IMAGE . $old_image );
			$image->resize ( $width, $height );
			$image->save ( DIR_IMAGE . $new_image );
		}
		
		if (isset ( $this->request->server ['HTTPS'] ) && (($this->request->server ['HTTPS'] == 'on') || ($this->request->server ['HTTPS'] == '1'))) {
			return HTTPS_IMAGE . $new_image;
		} else {
			return HTTP_IMAGE . $new_image;
		}
	}
	
	public function resizeProductImage($arr, $key, $width, $height) {
		if (is_array ( $arr )) {
			foreach ( $arr as $k => $v ) {
				$v [$key] = $this->resize ( $v [$key], $width, $height );
				$arr [$k] = $v;
			}
		}
		return $arr;
	}
}
?>